The present invention relates to a remote printing system and more particularly, relates to a remote printing system implemented in a client/server network.
Many companies have expanded their operations to include various geographically dispersed offices (remote sites) throughout various countries of the world. As a result of the expansion of companies to geographically dispersed environments, companies had to make the resources of the company available to each remote site. Often in making resources available to the remote sites some resources were duplicated. Such resources that were commonly duplicated include computer software and hardware, instruction manuals and the like. Due to increased competition in many business areas, companies searched for ways to reduce costs. Many companies have reduced cost associated with computing by adopting client/server networks to aid in the transfer of information between remotes sites.
By using client/server networks, companies consolidated many of their computer programs, databases or needs in a central or regional computing center. With a central or regional computer processing center containing most if not all the computer programs and databases of the company, the remote sites routinely access the regional computing center via the computer network to use the company""s computer resources. While it is relatively convenient for a remote site to access a computer program at a company""s regional computing center for processing data, the conventional methods of printing a document have not been as convenient for a remote site. For example, when a computer system at a remote business site requests that a document be printed at the regional computing center, the document is faxed or sent by mail from the regional computing center to the remote site. This delay or cost in obtaining a printed copy of a document is not desirable for many business needs. Another conventional method for printing documents in a wide area network includes providing a print server and printer at the remote site. With a conventional remote print server and printer set-up, when the remote site initiates a print request to the application program at the regional computing center, the application program at the regional computing center communicates with the remote print server to schedule each print job.
While using the conventional remote print server and printer set-up is helpful, it does not satisfy many print needs in a wide area network environment because in a wide area network, communication over the wide area network can often be slow and a printing problem occurring a remote printer can farther slow completion of print processing. For example, if a remote site requests a print job from the computer application at the regional computing center and the printer assigned for printing is not operating properly at the remote site, the print request must be regenerated again when the problem is solved over the wide area network. Given the communication time required when operating with wide area networks, many of the above scenarios of generating a print request or occupying the processing time of the computer application are not acceptable for many companies. Additionally, if a user or users initiate simultaneous print requests to the same remote site, the printing process conventionally takes a long time to process because print jobs are printed successively over the wide area network to the remote site. Also, when printing over a wide area network some pages or lines of the document may be lost in the transmission with no way to recover the lost information without making another print request over the network.
Thus, there is a need in the art for a remote printing system that reduces or eliminates delays associated with printing documents at remote sites. Also, there is a need in the art to provide a remote printing system that eliminates or reduces the delays associated with remote printing when multiple print jobs are requested simultaneously. Additionally, there is a need in the art to provide a network printing system that ensures the integrity of the data of a print job that is sent over the network.
Generally described, the present invention provides a method of processing a print job in a client/server network that enables a computer application at a server to respond to a print request and to resume processing without being further responsible for printing operations that involve the requested print job.
More particularly, the present invention provides a method of processing a print job that includes receiving a print request from a computer application running at a first computer. After which, all pertinent print information needed to complete the print job associated with the print request is obtained from the computer application by engaging the computer application with a print process controller at the first computer. Another step creates a spool file for the print job at the first computer. The spool file is then transferred by a file transfer manager from the first computer to a second computer. The method includes storing the spool file at the second computer for processing as a print job at the second computer.
Preferably, the transferring of the spool file from the first computer to the second computer occurs over a wide area network. This method may further include the step of releasing the computer application from engagement with the print process controller when the print process controller obtains all pertinent information to complete the print job. Another step may include storing the spool file, as a first stored spool file, at the first computer before transferring the spool file to the second computer.
Preferably, the method includes deleting the spool file from the first computer when the spool file is transferred from the first computer to the second computer.
Preferably, the method also includes the step of storing the spool file at the second computer as a second stored spool file. The print job may be printed at a printer or displayed on a computer monitor connected to the second computer. Additionally, if a plurality of print requests are received simultaneously at the first computer for output at the second computer, the simultaneous print jobs corresponding to the print requests are concurrently transferred to the second computer system.
The present invention also includes a computer-readable medium on which is stored program modules for processing a print job. The program modules include instructions which, when executed by the computer system, perform several steps. One step includes receiving a print request from a computer application running at a first computer. A second step includes obtaining all pertinent print information to complete the print request from the computer application by engaging the computer application with a print process controller at the first computer. A third step includes creating a spool file for the print job corresponding to the print request at the first computer. A fourth step includes transferring the spool file, with a file transfer manager, from the first computer to a second computer. A fifth step includes storing the spool file at the second computer for processing as a print job at the second computer.
The computer-readable medium may include instructions which, when executed by the computer system, perform the step of releasing the computer application from engagement with the print process controller when the print process controller obtains all pertinent information to complete the print request.
Also, the computer-readable medium may include instructions which, when executed by the computer system, perform the step of transferring a plurality of simultaneous print jobs concurrently to the second computer system.
The present invention also includes a system for remote printing over a computer network. The remote printing system includes a first computer server connected to the computer network. The first computer server has a memory unit for storing various program modules. A shared computer application is stored in the memory unit. Also stored in the memory unit is an interceptor program module that is operative to intercept a print command received at the computer application. The interceptor program module is operative to engage the computer application to obtain print data associated with the print request and to create a spool file. Another program module stored in the memory unit is a print spooler program that is operative to schedule a spool file transfer to another computer system. A file transfer manager is also stored in the memory unit and is operative to transfer the spool file to said another computer system.
A remote computer system is also connected to the computer network. The remote computer system is operative to access and execute the shared computer application at the first computer server via the computer network. The remote computer system also is operative to initiate a print command in the shared computer application at the first computer server. The remote computer system receives from the file transfer manager via the network a print job requested from the remote computer system.
Thus, it is an object of the present invention to provide a remote printing system that reduces or eliminates delays associated with printing documents at remote sites.
This and other objects, features, and advantages of the present invention will become apparent from reading the following description in conjunction with the accompanying drawings.